package lp2.projeto.gerenciador;
import static org.junit.Assert.*;
import lp2.projeto.horario.Horario;
import lp2.projeto.horario.Mes;

import org.junit.*;


public class EventoTest {
	private Evento evento1, evento2;

	/**
	 * Carrega um evento pre-definido
	 */
	@Before
	public void criaEvento(){
		evento1 = new Evento("Aula", new Horario(10,Mes.ABRIL,10,10,10), "Prova Calc 2", 120, "Nao catalogado");
		evento2 = new Evento("Aula2", new Horario(10,Mes.MAIO,10,10,10), "Prova Calc 1", 120, "Nao catalogado");
	}
	
	/**
	 * Testa a duracao do evento
	 */
	@Test public void testaGetSetDuracao(){
		assertEquals("Get n�o funcionou",120,evento1.getDuracao());
		evento1.setDuracao(180);
		assertEquals( "Set n�o funcionou", 180, evento1.getDuracao());
	}
	
	/**
	 * Testa a alteracao de nome
	 */
	@Test public void testaGetSetNome(){
		assertEquals("Get n�o funcionou","Aula",evento1.getNome());
		evento1.setNome("Prova");
		assertEquals( "Set n�o funcionou", "Prova", evento1.getNome());
	}
	
	/**
	 * Testa a alteracao da descricao
	 */
	@Test public void testaGetSetDescricao(){
		assertEquals("Get n�o funcionou","Prova Calc 2",evento1.getDescricao());
		evento1.setDescricao("Prova Calc 2 Extendida");
		assertEquals( "Set n�o funcionou", "Prova Calc 2 Extendida", evento1.getDescricao()); 
	}

	@Test public void testaIniciaNoDia() {
		assertTrue(evento1.iniciaNoDia(10, Mes.ABRIL, 10));
		assertFalse(evento1.iniciaNoDia(10, Mes.DEZEMBRO, 10));
	}
	
	/**
	 * Testa a funcao compareTo
	 */
	@Test public void testaCompareTo() {
		assertTrue(evento1.compareTo(evento2) < 0);
		assertTrue(evento2.compareTo(evento1) > 0);
		assertTrue(evento1.compareTo(evento1) == 0);
		assertTrue(evento2.compareTo(evento2) == 0);
	}
}
